Problem
Given an array A of integers, a ramp is a tuple (i, j) for which i < j and A[i] <= A[j]. The width of such a ramp is j - i.
Find the maximum width of a ramp in A. If one doesn’t exist, return 0.
Example 1:
Input: [6,0,8,2,1,5]
Output: 4
Explanation:
The maximum width ramp is achieved at (i, j) = (1, 5): A[1] = 0 and A[5] = 5.
Example 2:
Input: [9,8,1,0,1,9,4,0,4,1]
Output: 7
Explanation:
The maximum width ramp is achieved at (i, j) = (2, 9): A[2] = 1 and A[9] = 1.
Note:
2 <= A.length <= 50000
0 <= A[i] <= 50000
Pre analysis
Will run simulation technique
Another solution
var maxWidthRamp = function(A) {
let n=A.length;
let B=Array.from({length:n}, (x,i)=>[i,A[i]]);
B.sort((a,b)=>{
if(a[1]!==b[1]) return a[1]-b[1];
else return a[0]-b[0];
});
let min=Infinity, max=-0;
for(let b of B){
let [i,n]=b;
max=Math.max(max, i-min);
min=Math.min(min, i);
}
return max;
};